import axios from 'axios';
import nProgress from 'nprogress';
import 'nprogress/nprogress.css'; //引入进度条相关样式
import getUuid from './uuid'
import store from '@/store'
// import { v4 as uuidv4 } from 'uuid'; //游客模式uuid唯一标识符，根据电脑生成
//创建axios实例
const request = axios.create({
  baseURL: '/dev-api', //路径拼接
  timeout: 20000, // 以毫秒为单位 超时不服务
});

//请求拦截器
//发送请求前进行拦截 ,传入两个回调函数，第一个成功回调，第二个失败回调
request.interceptors.request.use(
  (config) => {
    // console.log(config);
    //开启进度条
    nProgress.start();
  
  //  console.log(store);
   const token =store.state.users.token
   console.log(token);
   config.headers.token = token
    
     //返回配置项，配置中的内容包含axios的内容和配置代理的内容
   config.headers.userTempId= getUuid()
    return config;
  },
  (err) => {
    //如果请求失败了，也关闭进度条，提示错误
    nProgress.done();
    alert('请求发送失败');
  }
);
//响应拦截器, 响应回来后对响应回来的响应数据进行拦截
request.interceptors.response.use(
  (res) => {
    //返回响应报文，res.data是响应体
    const result = res.data; //响应体 内容包含code、data等
    // console.log(res);
    //响应成功，关闭进度条
    nProgress.done();
    //如果code为200 ，代表响应成功
    if (result.code === 200) {
      //数据，从响应体的data中获取
      // console.log(result.data);
      return result.data;
      //状态码为223 代表，注册时手机号码被注册了，返回响应体，在进行判断
    } else if(result.code === 223) {
      return result
    }
  },
  (err) => {
    alert('未找到相关数据');
  }
);
export default request;
